%Questoes da Prova de MC336 2 e 4
% Tiago Falcao RA 046802
%Remove as N primeiras ocorrencias de A em uma Lista
remove(T,_,0,T).
remove([],_,N,[]) :- N>0,!,fail.
remove([A|T],A,N,X) :- K is N - 1, remove(T,A,K,X).
remove([H|T],A,N,[H|X]) :- remove(T,A,N,X).

%Verifica se Um numero eh Par ou Impar
par(A) :- B is A/2,integer(B).
impar(I) :-  \+ par(I).

%Dada uma Lista de Profundidade Indefinida, Retorna Lista de intes pares e impares
par_impar([],[],[]).
par_impar([A|L],P,I) :- append([],A,A), par_impar(A,P2,I2), par_impar(L,P3,I3), append(P2,P3,P), append(I2,I3,I).
par_impar([A|L],P,I) :- par(A), par_impar(L,P2,I), append([A],P2,P).
par_impar([A|L],P,I) :- impar(A), par_impar(L,P,I2), append([A],I2,I).
